Skip to content

神经网络中的激活函数、正则化与归一化 ​

本文按照“表达能力 → 泛化能力 → 优化稳定性”的学习路径展开:

  1. 激活函数:引入非线性,决定网络的表达能力。
  2. Dropout:通过随机失活抑制过拟合,提升泛化能力。
  3. 归一化:控制中间激活值的尺度,改善训练稳定性。
  4. 综合选型:根据模型架构、批次大小和任务场景选择合适的方法。

第一部分:ReLU 及其变体——让网络真正具备非线性 ​

如果多层网络只包含线性变换,那么它们叠加后仍然等价于一个线性变换,深度无法带来额外的表达能力。激活函数插入线性层之间,打破这种线性闭合性。ReLU(Rectified Linear Unit)因计算简单、正区间梯度稳定,成为最经典的选择。

1.1 ReLU 的定义与梯度 ​

ReLU(x)=max(0,x)

其导数为:

ReLU′(x)={0,x<01,x>0

优势:正区间不饱和,梯度为 1;计算成本低;输出具有稀疏性。
缺点:当某个神经元长期落在负区间时,梯度恒为 0,参数无法更新,这就是“死亡 ReLU”(Dying ReLU)。过大的学习率、偏置初始化不当都可能加剧这个问题。

1.2 ReLU 的主要变体 ​

Leaky ReLU ​

在负区间保留一个很小的斜率 α,避免梯度彻底消失:

LeakyReLU(x)={x,x≥0αx,x<0

其中 α 通常取 0.01。它不再产生完全为零的负区间梯度,但 α 是人工设定的超参数。

PReLU ​

PReLU 将 α 改为可学习参数:

PReLU(x)=max(0,x)+αmin(0,x)

它比 Leaky ReLU 更灵活,但会增加参数,并可能在小数据集上带来过拟合。

ELU 与 SELU ​

ELU 在负区间采用平滑指数曲线:

ELU(x)={x,x>0α(ex−1),x≤0

负区间输出有界且均值更接近 0,通常比 ReLU 更平滑,但指数运算会增加计算成本。SELU 是 ELU 的特定缩放版本,配合特定初始化和网络结构时具有 self-normalizing 特性,通常与 AlphaDropout 配套使用,不能脱离这些条件单独理解。

GELU ​

GELU 不是简单地截断负值,而是按照输入大小对其进行平滑概率加权:

GELU(x)=xΦ(x)

其中 Φ(x) 是标准正态分布的累积分布函数。GELU 平滑、没有 ReLU 在 0 点的折角,在 Transformer、BERT 和 GPT 等模型中很常见。

SiLU / Swish ​

SiLU(x)=xσ(x)=x1+e−x

SiLU 也常被称为 Swish。它允许少量负值通过,并且处处平滑;在 MobileNetV3、EfficientNet 以及许多现代视觉和语言模型中表现良好。相比 ReLU,它通常带来更好的优化效果,但计算量略高。

1.3 激活函数的工程选型 ​

场景常用选择原因
经典 CNN、轻量模型ReLU便宜、稳定、硬件支持好
需要缓解死亡神经元Leaky ReLU / PReLU负区间保留梯度
Transformer、现代 MLPGELU / SiLU平滑,优化表现通常更好
SELU 专用架构SELU + AlphaDropout共同维持自归一化条件
大语言模型 FFNSwiGLU 等门控激活用门控提升表达能力,代价是结构和参数更复杂

激活函数没有脱离架构的“绝对王者”:CNN 中 ReLU 的效率优势仍然很重要,而 Transformer 更常使用 GELU、SiLU 或其门控变体。选择时应同时考虑梯度性质、计算成本、初始化方式、归一化位置以及已有论文或框架实现的基线。


第二部分:Dropout——随机失活的正则化方法 ​

归一化主要控制激活值的尺度,而 Dropout 负责抑制神经元之间的过度共适应。它通过随机扰动训练过程降低过拟合,和激活函数、归一化解决的是不同问题。

2.1 Dropout 的定义与训练/推理差异 ​

训练时,Dropout 以概率 p 独立地将神经元输出置零,以概率 1−p 保留。设保留率为 q=1−p,采用当前主流的 Inverted Dropout:

mi∼Bernoulli(q),yi=mixiq

其中 mi 是随机掩码。因为训练时已经除以 q,所以有 E[yi]=xi,推理阶段可以直接关闭 Dropout,不需要额外缩放:

  • 训练阶段:每次前向传播都随机丢弃一部分激活,迫使网络学习冗余且更稳健的特征组合。
  • 推理阶段:保留全部神经元,并将 Dropout 视为恒等映射。
  • 概率选择:全连接层常用 p=0.1∼0.5;卷积层通常使用更小的值,避免破坏空间结构;大模型中常用较小的 p,甚至设为 0。

Dropout 的本质可以理解为训练大量共享参数的“子网络”,并在推理时使用它们的近似集成。它主要用于容易过拟合的全连接层或注意力/前馈子层输出;如果模型已经很大、数据充足,或者训练中已经使用强数据增强与权重衰减,Dropout 过大反而会降低拟合能力。

2.2 Dropout 的常见变体 ​

变体随机失活单位典型场景核心特点
Standard Dropout单个元素MLP、分类头通用,粒度最细
Spatial Dropout / Dropout2d整个通道CNN、特征图避免只随机删除孤立像素,保留空间结构
DropConnect权重连接MLP、研究场景随机删除权重,而不是激活值
DropPath / Stochastic Depth整条残差分支ResNet、ViT、深层网络深层网络中随机跳过子层,通常随深度增加失活率
AlphaDropout激活元素SELU 网络尽量保持 SELU 的均值和方差不变

Dropout 应放在网络结构明确的位置,并注意不要误用在推理阶段。实际工程中应使用框架提供的 train() / eval() 模式切换;手动实现时,最常见的错误是忘记训练阶段的 1/q 缩放,导致训练和推理的激活尺度不一致。


第三部分:归一化方法——控制激活值的尺度 ​

Batch Normalization 由 Sergey Ioffe 和 Christian Szegedy 在 2015 年提出,是第一个被大规模应用的归一化技术,极大地推动了深度卷积网络的训练效率。

3.1 Batch Normalization(BN)——批次维度的稳定器 ​

3.1.1 严格数学定义 ​

对于一个形状为 (N,C,H,W) 的卷积特征图(或 (N,D) 的全连接层特征),BN 在批次维度(N) 和空间维度(H,W)上计算统计量。 在训练阶段,对于每个通道 c(逐通道独立计算):

  • 均值:μc=1N⋅H⋅W∑n=1N∑h=1H∑w=1Wxn,c,h,w
  • 方差:σc2=1N⋅H⋅W∑n=1N∑h=1H∑w=1W(xn,c,h,w−μc)2
  • 标准化:x^n,c,h,w=xn,c,h,w−μcσc2+ϵ
  • 输出:yn,c,h,w=γcx^n,c,h,w+βc

3.1.2 训练与推理的分离(至关重要!) ​

BN 在训练和推理时的行为截然不同:

  • 训练阶段:使用当前 mini-batch 内部的均值和方差进行归一化。这意味着同一批次内不同样本的归一化结果是相互耦合的。
  • 推理阶段(测试阶段):由于可能只处理单个样本(N=1),无法计算有效统计量。因此,BN 使用训练过程中所有批次统计量的指数移动平均(Exponential Moving Average, EMA) 作为全局无偏估计,并冻结 γ 和 β。

3.1.3 优势与致命的局限性 ​

  • 优势:允许使用更大的学习率(梯度不易爆炸);对初始化权重不那么敏感;轻微的正则化效果(因为批次统计引入了微小噪声)。
  • 局限性(阿喀琉斯之踵):
    1. 对批次大小(Batch Size)极度敏感:当 N 很小(如单卡训练时 N≤8)时,批次统计量的方差极大,引入严重噪声导致训练崩溃。因此,BN 不适用于大模型(Batch Size 常设为 1-2),也不适用于显存有限的场景。
    2. 不适用于循环神经网络(RNN):RNN 处理的是变长序列,不同时间步的统计特性不同,且无法在时间维度上准确计算全局统计量。
    3. 破坏序列长度一致性:在 NLP 中,句子长度不同,填充(Padding) token 的存在会污染均值和方差的计算。

为了克服 BN 对批次大小的依赖,Jimmy Lei Ba 等人在 2016 年提出了 Layer Normalization。它彻底抛弃了“批次”维度,转而在单个样本的特征维度上计算统计量。

3.2 Layer Normalization(LN)与 RMSNorm ——特征维度的独立卫士 ​

3.2.1 Layer Normalization 的严格定义 ​

对于一个输入向量 x∈RD(全连接层)或特征图 (N,C,H,W),LN 对每个样本独立计算,统计量不依赖其他样本。

对于单个样本的某一层所有神经元:

  • 均值:μ=1D∑i=1Dxi
  • 方差:σ2=1D∑i=1D(xi−μ)2
  • 标准化:x^i=xi−μσ2+ϵ
  • 输出:yi=γix^i+βi

核心区别:BN 是逐通道的(不同通道有独立的 μ,σ),而 LN 是逐样本逐层的(同一层的所有神经元共享同一套 μ,σ,但每个神经元有独立的 γ,β 用于恢复表达)。

3.2.2 LN 在 Transformer 中的统治地位 ​

LN 最成功的应用是在 Transformer 架构中。无论是编码器还是解码器,每个子层(多头注意力、前馈网络)之后都紧跟着 Pre-LayerNorm 或 Post-LayerNorm。 LN 适合 Transformer 的原因:

  • 与批次大小无关:即使序列长度巨大(L=8192),BN 依然工作良好,因为归一化只依赖序列本身的 L×D 个神经元。
  • 沿特征轴统计:在 Transformer 中,不同的特征维度(embedding dimension)往往具有不同的尺度,LN 通过统计该样本所有特征的全局分布,使模型对特征幅值不敏感。

3.2.3 RMSNorm —— LN 的极致简化(效率的革命) ​

RMSNorm 由 Zhang 和 Sennrich 在 2019 年提出,目前在 LLaMA、Mistral 等主流开源大模型中全面替代了 LN。它的核心理念是:移除均值中心化(Centering),只保留均方根(Root Mean Square)缩放。

LN 的标准化步骤为 x^i=xi−μσ。RMSNorm 认为,减去均值 μ 在多层堆叠后是冗余的,直接使用均方根缩放:

  • RMS 计算:RMS(x)=1D∑i=1Dxi2
  • 标准化:x^i=xiRMS(x)
  • 输出:yi=γix^i(通常省略 β 偏置项,因为中心化已被移除)

优势:计算量比 LN 减少约 10%~30%(省去了均值计算和减法),且在 LLaMA 等超大规模模型上表现与 LN 持平或略优。这是工业界为追求极致推理速度所作的简约选择。

当研究人员试图在 Mask R-CNN 等目标检测模型上使用更大的 batch size 时,BN 失效了(检测任务输入图像大,batch size 通常为 1 或 2)。Group Normalization 由 Yuxin Wu 和 Kaiming He(何恺明)在 2018 年提出,旨在填补 BN 在小批量场景下的失效空白。

3.3 Group Normalization(GN)——通道分组的折中艺术 ​

3.3.1 严格定义与计算维度 ​

GN 将通道(Channel)维度 C 划分为 G 个组(Groups),每组包含 C/G 个通道。归一化统计量在 (N,H,W) 和组内通道上计算,完全独立于批次大小 N。

对于一个形状为 (N,C,H,W) 的张量,计算在第 n 个样本、第 g 组(通道范围 {Cg,…,Cg+C/G})内的所有元素:

  • 均值:μn,g=1(C/G)⋅H⋅W∑c=CgCg+C/G∑h=1H∑w=1Wxn,c,h,w
  • 方差:σn,g2=1(C/G)⋅H⋅W∑(x−μn,g)2
  • 标准化与仿射:与 BN 形式一致。

3.3.2 三个归一化的统一视角(超参数 G 的妙用) ​

GN 实际上是 LN 和 BN 的广义插值:

  • 当 G=1 时,GN 退化(只有一个分组,所有通道视为一体)为 Layer Normalization。
  • 当 G=C(每组只含 1 个通道)时,GN 等价于 Instance Normalization(IN)(常用于风格迁移,逐样本逐通道归一化)。
  • GN 既不要求固定的批次大小,又能保留 CNN 中通道之间的特定相关性(因为相邻通道组合在一起统计),因此在大批量受限的检测、分割任务中表现稳健,几乎完美替代 BN。

第四部分:宏观对比与选型法则 ​

维度BatchNorm (BN)LayerNorm (LN)RMSNormGroupNorm (GN)
统计维度批次 N + 空间 H,W特征 D 或 C特征 D 或 C(无中心化)通道组 G + 空间 H,W
是否依赖 Batch Size高度依赖(Batch大则好)完全不依赖完全不依赖完全不依赖
训练/推理差异统计量不同(需要 EMA)完全相同完全相同完全相同
适用场景标准 CNN(如 ResNet),固定大 BSTransformer、RNN、NLP 场景大语言模型(LLaMA系列)目标检测/分割(小 BS)、视频理解
主要优势收敛快,允许大学习率模型鲁棒,无批约束计算极简,效率最高兼具 BN 和 LN 优点,通用性强

选型决策树(Engineering Rule of Thumb) ​

  1. 正在训练百亿级大语言模型(LLM)? 直接使用 RMSNorm(如 LLaMA 生态)—— 省内存,提速明显,效果无损。
  2. 在 NLP(BERT、GPT)或序列任务(语音、时间序列)上做研究? 选 LayerNorm(经典稳健,大量基线参考)。
  3. 在 ImageNet 上跑 ResNet,且显卡够好(Batch Size ≥ 32)? 必须选 BatchNorm(这是 CNN 的黄金搭档)。
  4. 在做目标检测(Faster R-CNN / Mask R-CNN)或姿态估计,Batch Size 只能设为 1 或 2? 立刻抛弃 BN,投入 GroupNorm(何恺明在论文中证明 GN 在此类场景下完全碾压 BN)。
  5. 做医学图像 3D 分割或视频动作识别(时空维度极大)? 首选 GroupNorm(通常 G=8 或 16 为最佳默认值)。

结语:归一化的核心在于“定位上下文” ​

BatchNorm 之所以伟大,是因为它引入了批次间的协作;但它的脆弱性,也让研究界深刻认识到“数据批次”并非可靠的上下文信号。LayerNorm、GroupNorm 和 RMSNorm 的涌现,标志着归一化从**“依赖群体统计的约束”转向了“依赖个体内禀结构的自适应”**。

在现代大模型(Transformer-based)的语境下,RMSNorm 凭借其极致的简洁性成为了最终的王者——没有均值计算的额外开销,没有减法操作带来的数值问题,仅仅用 x / sqrt(mean(x^2)) 就驯服了千亿参数的梯度震荡。这再次印证了深度学习工程的一条黄金法则:少即是多,简约并不等于简单,而是对本质最深刻的提炼。 理解它们的数学本质,就是在理解如何为不同的算法架构匹配合适的“大地坐标系统”。